package com.xiaoxu.security.custom;

import com.xiaoxu.model.system.SysUser;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.User;

import java.util.Collection;

public class CustomUser extends User {

    /**
     * 我们自己的用户实体对象，要调取用户信息时直接获取这个实体对象。（这里我就不写get/set方法了）
     */
    private SysUser sysUser;

    /**
     * CustomUser构造函数
     * 用于创建一个自定义用户对象，继承自系统用户并附加权限信息
     *
     * @param sysUser 系统用户对象，包含用户的基元信息，如用户名、密码等
     * @param authorities 用户具有的权限集合，可以是多种权限
     */
    public CustomUser(SysUser sysUser, Collection<? extends GrantedAuthority> authorities) {
        super(sysUser.getUsername(), sysUser.getPassword(), authorities);
        this.sysUser = sysUser;
    }

    public SysUser getSysUser() {
        return sysUser;
    }

    public void setSysUser(SysUser sysUser) {
        this.sysUser = sysUser;
    }

}
